package negocio;

import java.sql.SQLException;
import java.util.ArrayList;

import persistencia.NotaExamenDAO;
import persistencia.UsuarioDAO;

public class UsuarioControlador {

//Viernes
	
	public static void guardar(Usuario user)
	{
		UsuarioDAO.getInstance().guardar(user);
	}
	
	
	public static void changeContrasenia(Usuario user, String nuevaContrasenia) throws SQLException
	{
		UsuarioDAO.getInstance().updateContraseniaUser(user, Verificacion.encriptarContrasenia(nuevaContrasenia)  );
	}
	

	//usado para la modificacion de los datos de un usuario
	public static void updateData(String dni, int tel, String mail, String nickname, String perfil, String estado) throws SQLException
	{
		UsuarioDAO.getInstance().modifyUser(dni, tel, mail, nickname, perfil, estado);
	}
	
	
	public static ArrayList<Usuario> getAll()
	{
		return UsuarioDAO.getInstance().getAll();
	}

	
	
	public static ArrayList<Usuario> getInstructores()
	{
		return UsuarioDAO.getInstance().getInstructores();
	}
	
	
	
	public static ArrayList<Usuario> getAdministrativosSupervisores() 
	{
		return UsuarioDAO.getInstance().getAdministrativosSupervisores();
	}
	
	
	
	public static Usuario buscarUser(String username, String password) throws SQLException 
	{	
		UsuarioDAO dao = UsuarioDAO.getInstance();
		
		//Se busca usuario en BD y se devuelve como Objeto cuando es encontrado
	    return dao.buscarUser(username, Verificacion.encriptarContrasenia(password) );
	  }

	
//	usado para validaciones gui, si existe repetido en BD
	public static Usuario getUsuario(String dni)
	{
		return UsuarioDAO.getInstance().getUsuario(dni);
	}
	

//	usado para validaciones gui, si existe repetido en BD
	public static Usuario getUsuarioByNickname(String nick)
	{
		return UsuarioDAO.getInstance().getUsuarioByNickname(nick);
	}
	

	
	public static ArrayList<Usuario> getSupervisores()
	{
		return UsuarioDAO.getInstance().getSupervisores();
	}
	
		
}
